/*
 * Jheberg.net
 * Jeffrey Muller <jeffrey.muller92@gmail.com>
 */

$(function() {
    var csrf_token = $('input[name=csrfmiddlewaretoken]').val();
    var progress_hosters = [];

    /* Share module */
    $('ul.icons li a').click(function(event) {
        if ($(event.currentTarget).attr('href').indexOf('mailto') != 0) {
            window.open($(event.currentTarget).attr('href'), '', config='height=500, width=500, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no');
            return false;
        }
    });

    /* Import module */
    $('a.import-on-my-account').click(function(event) {
        var file_pk = $(event.currentTarget).attr('data-file');
        var import_link = $(event.currentTarget).attr('href');

        $.fn.SimpleModal({
            title: 'Importer un fichier',
            contents: 'Êtes-vous sûr de vouloir importer ce fichier dans votre compte ?',
            btn_ok: 'Importer le fichier',
            model: 'modal'
        }).addButton('Importer le fichier', 'modal-btn primary', function() {
            $('div.loading-background').fadeIn();
            $('body').spin();

            $.post(import_link, {
                'csrfmiddlewaretoken': csrf_token,
                'file': file_pk
            }, function(data) {
                $.jNotify({
                    content: "Votre fichier a bien été importé dans votre compte !",
                    timeout: 10000,
                    position: 'bottom right'
                });

                $('div.loading-background').fadeOut();
                $('body').spin(false);
            }).fail(function(data) {
                if (data.status == 400) {
                    var message = "Vous devez être connecté à votre compte afin d'effectuer cette action.";
                } else {
                    var message = "Il y a eu une erreur lors de l'importation du fichier";
                }

                $.jNotify({
                    content: message,
                    timeout: 10000,
                    position: 'bottom right'
                });

                $('div.loading-background').fadeOut();
                $('body').spin(false);
            });
            this.hideModal();
        }).addButton("Annuler", "modal-btn", function() {
            this.hideModal();
        }).showModal();
        return false;
    });

    /* Password module */
    function onDownloadClick() {
        var password = $('div.password-container input').val();

        if (password.length > 0) {
            $.post($('div.password-container input[name=password]').val(), {
                'csrfmiddlewaretoken': csrf_token,
                'file': $('a[data-file]').data('file'),
                'password': $('div.password-container input').val()
            }, function(data) {
                if (data.error) {
                    $.jNotify({
                        content: "Le mot de passe entré est erroné.",
                        timeout: 10000,
                        position: 'bottom right'
                    });
                } else {
                    document.location.href = $('a.dl-button').attr('href');
                }
            }).fail(function() {
                $.jNotify({
                    content: "Il y a eu une erreur.",
                    timeout: 10000,
                    position: 'bottom right'
                });
            });
        } else {
            $.jNotify({
                content: "Vous devez entrer un mot de passe.",
                timeout: 10000,
                position: 'bottom right'
            });
        }
        return false;
    }

    if ($('div.password-container')) {
        $('a.dl-button').click(onDownloadClick);

        $('div.password-container input[type=password]').keypress(function(event) {
            if (event.which == 13) {
                onDownloadClick();
            }
        });
    }

    if (typeof jhebergSignature != 'undefined' && jhebergSignature === true) {
        if ($('#ads_bottom').is(':hidden')) {
            $('body').one('mouseover', function() {
                $('div.loading-background').css('opacity', '0.80').fadeIn(function() {
                    $('div.jadb').show();

                    var interval = setInterval(function() {
                        $('div.jadb').hide();
                        $('div.loading-background').fadeOut();
                    }, 15000);
                });
            });
        }
    }

    /* Spinner loading */
    $('div.spinner-loading').spin({
        width: 2,
        length: 0,
        lines: 15,
        radius: 15
    });

    if ($('section.download-header[data-server]').length > 0) {
        var server = $('section.download-header[data-server]').data('server');

        if (server != 0) {
            $.post(server + 'get/upload/progress/', {
                'id': $('section.download-header[data-server]').data('slug')
            }, function(data) {
                progress_hosters = data;
            });
        }
    }

    if ($('div.hoster').length > 0) {
        $('div.hoster').tipTip({
            defaultPosition: 'top',
            delay: 100,
            maxWidth: 300,
            enter: function(elem) {
                var hoster = elem.closest('div.hoster').data('hoster');

                $.each(progress_hosters, function(idx, e) {
                    if (idx == hoster) {
                        if (e == null) {
                            $(elem).find('.upload-percentage').text('Non disponible');
                        } else {
                            $(elem).find('.upload-percentage').text(e + '%');
                        }
                    }
                });
            }
        });
    }
});